package com.zkh.myframe.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.zkh.myframe.enumeration.annotation.KeyType;

/**
 * Table注解，指定数据表名name、主键key，主键值生成方式。<br />
 * 默认下主键key="id"，主键值生成方式keyvalue=KeyType.AUTO（数据库自增，Oracle不支持）
 * @author zkh
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Table {
	/**
	 * 指定数据表名
	 */
	String name();
	/**
	 * 指定表中的主键，可以是联合主键。默认单主键，且key={"id"}。
	 */
	String[] keys() default "id";
	/**
	 * 主键值类型，只对单主键有效。默认AUTO(自增长)，<b>Oracle需设置序列sequence。</b><br />
	 * Oracle自增长请使用序列KeyType.SEQUENCE，并设置序列名。
	 * @return
	 */
	KeyType keyvalue() default KeyType.AUTO;
	/**
	 * 序列名，只对单主键有效，仅使用Oracle数据库且keyvalue设置为KeyType.AUTO时需要设置。
	 * @return
	 */
	String sequence() default "";
}
